fix out of bound access to mode_strings
authorStefano Stabellini <sstabellini@kernel.org>
Fri, 9 Dec 2016 01:17:04 +0000 (17:17 -0800)
committerStefano Stabellini <sstabellini@kernel.org>
Thu, 16 Mar 2017 20:47:03 +0000 (13:47 -0700)
mode == ARRAY_SIZE(mode_strings) causes an out of bound access to
the mode_strings array.

Coverity-ID: 1381859

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Julien Grall <julien.grall@arm.com>
xen/arch/arm/traps.c

index 7ab96d4cb54139f72252d4237ea3958f4b1beaf7..90aba2a6d6bab7b89bd35f46b84bbb860a1e5a00 100644 (file)
@@ -656,7 +656,7 @@ static const char *mode_string(uint32_t cpsr)
     };
     mode = cpsr & PSR_MODE_MASK;
 
-    if ( mode > ARRAY_SIZE(mode_strings) )
+    if ( mode >= ARRAY_SIZE(mode_strings) )
         return "Unknown";
     return mode_strings[mode] ? : "Unknown";
 }